package com.blacktry.entity.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import java.util.List;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 
 * </p>
 *
 * @author blackTry
 * @since 2021-12-12
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="TrainingProgram对象", description="")
public class TrainingProgram implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "id")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    @ApiModelProperty(value = "课程类别：1通识教育课程必修课，2通识教育课程选修课，3专业必修课，4专业选修课,5学科必修课6实践环节")
    private String type;

    @ApiModelProperty(value = "课程id")
    private String courseId;

    @ApiModelProperty(value = "课程名")
    private String courseName;

    @ApiModelProperty(value = "学分")
    private Float credit;

    @ApiModelProperty(value = "是否核心课程")
    private Boolean core;

    @ApiModelProperty(value = "院考系考")
    private String collegesOrDepartments;

    @ApiModelProperty(value = "考核方式(考试、考查)")
    private String examinationWay;

    @ApiModelProperty(value = "总学时")
    private Float timeAll;

    @ApiModelProperty(value = "理论学时")
    private Float timeTheory;

    @ApiModelProperty(value = "实验学时")
    private Float timeLab;

    @ApiModelProperty(value = "上机学时")
    private Float timeComputer;

    @ApiModelProperty(value = "其他学时")
    private Float timeOther;

    @ApiModelProperty(value = "这个课哪个学期上")
    private Integer startSemester;

    @ApiModelProperty(value = "培养方案按入学时间分，如：17级本科培养方案，18级本科培养方案")
    private Integer grade;

    @ApiModelProperty(value = "专业方向id")
    private String specialityId;

    @ApiModelProperty(value = "学期id")
    private String semesterId;

    @ApiModelProperty(value = "-2删除-1异常0正常")
    private Integer status;

    @TableField(exist = false)
    private List<TrainingProgram> trainingProgramList ;

}
